home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 37 / IOPROG_37.ISO / SOFT / Multilizer.exe / disk1 / data1.cab / data1 / [Group9]VCL Source Standard / ivdatdic.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-08-12  |  2.8 KB  |  117 lines

  1. unit IvDatDic;
  2.  
  3. {$I IVMULTI.INC}
  4.  
  5. interface
  6.  
  7. uses
  8. {$IFDEF WIN32}
  9.   Windows,
  10. {$ELSE}
  11.   WinTypes, WinProcs,
  12. {$ENDIF}
  13.   Classes, SysUtils,
  14.   IvDictio;
  15.  
  16. const
  17.   { Language tables items }
  18.  
  19.   LANGUAGE_ENGLISH_NAME_C = 0;
  20.   LANGUAGE_NATIVE_NAME_C = 1;
  21.   LANGUAGE_PRIMARY_C = 2;
  22.   LANGUAGE_SUBS_C = 3;
  23.   LANGUAGE_DEFAULT_SUB_C = 4;
  24.   LANGUAGE_FONT_NAME_C = 5;
  25.   LANGUAGE_FONT_SIZE_C = 6;
  26.   LANGUAGE_OPTIONS_C = 7;
  27.   LANGUAGE_CHARSET_C = 8;
  28.   LANGUAGE_CODE_PAGE_C = 9;
  29.   LANGUAGE_ISO_LANGUAGE_C = 10;
  30.   LANGUAGE_ISO_COUNTRIES_C = 11;
  31.   LANGUAGE_ISO_DEFAULT_COUNTRY_C = 12;
  32.  
  33.   { Locale tables items }
  34.  
  35.   LOCALE_PRIMARY_C = 0;
  36.   LOCALE_SUB_C = 1;
  37.   LOCALE_LOCALE_C = 2;
  38.   LOCALE_ENGLISH_LANGUAGE_NAME_C = 3;
  39.   LOCALE_NATIVE_LANGUAGE_NAME_C = 4;
  40.   LOCALE_ENGLISH_COUNTRY_NAME_C = 5;
  41.   LOCALE_NATIVE_COUNTRY_NAME_C = 6;
  42.   LOCALE_CODEPAGE_C = 7;
  43.   LOCALE_MEASUREMENT_SYSTEM_C = 8;
  44.   LOCALE_CURRENCY_STRING_C = 9;
  45.   LOCALE_CURRENCY_FORMAT_C = 10;
  46.   LOCALE_NEG_CURR_FORMAT_C = 11;
  47.   LOCALE_THOUSAND_SEPARATOR_C = 12;
  48.   LOCALE_DECIMAL_SEPARATOR_C = 13;
  49.   LOCALE_CURRENCY_DECIMALS_C = 14;
  50.   LOCALE_DATE_SEPARATOR_C = 15;
  51.   LOCALE_SHORT_DATE_FORMAT_C = 16;
  52.   LOCALE_LONG_DATE_FORMAT_C = 17;
  53.   LOCALE_TIME_SEPARATOR_C = 18;
  54.   LOCALE_TIME_AM_STRING_C = 19;
  55.   LOCALE_TIME_PM_STRING_C = 20;
  56.   LOCALE_TIME_LEADING_ZEROS_C = 21;
  57.   LOCALE_TIME_FORMAT_C = 22;
  58.   LOCALE_CALENDAR_TYPE_C = 23;
  59.   LOCALE_OPTIONAL_CALENDAR_TYPE_C = 24;
  60.   LOCALE_FIRST_DAY_OF_WEEK_C = 25;
  61.   LOCALE_FIRST_WEEK_OF_YEAR_C = 26;
  62.   LOCALE_SHORT_MONTH1_C = 27;
  63.   LOCALE_LONG_MONTH1_C = 39;
  64.   LOCALE_SHORT_DAY1_C = 51;
  65.   LOCALE_LONG_DAY1_C = 58;
  66.   LOCALE_WIN16_LANGUAGE_NAME_C = 65;
  67.   LOCALE_WIN16_COUNTRY_NAME_C = 66;
  68.   LOCALE_TIME_MARK_POSITION_C = 67;
  69.   LOCALE_ISO_LANGUAGE_C = 68;
  70.   LOCALE_ISO_COUNTRY_C = 69;
  71.   LOCALE_IS_CUSTOM_C = 70;
  72.   LOCALE_CHARSET_C = 71;
  73.  
  74.   LANGUAGE_ITEM_COUNT_C = 13;
  75.   LOCALE_ITEM_COUNT_C = 72;
  76.  
  77.   INDEX_NAME_C = 'Native';
  78.  
  79.   TRANSLATION_TABLE_C = 'TranslationTable';
  80.   LANGUAGE_TABLE_C = 'LanguageTable';
  81.   LOCALE_TABLE_C = 'LocaleTable';
  82.  
  83. type
  84.   EIvNoIndex = class(Exception);
  85.  
  86.   TIvCustomDatabaseDictionary = class(TIvDictionary)
  87.   private
  88.     FTableName: String;
  89.     FLanguageTableName: String;
  90.     FLocaleTableName: String;
  91.  
  92.   protected
  93.     function GetFieldIndex: Integer;
  94.  
  95.   published
  96.     property TableName: String read FTableName write FTableName;
  97.     property LanguageTableName: String read FLanguageTableName write FLanguageTableName;
  98.     property LocaleTableName: String read FLocaleTableName write FLocaleTableName;
  99.   end;
  100.  
  101. implementation
  102.  
  103. function TIvCustomDatabaseDictionary.GetFieldIndex: Integer;
  104. begin
  105.   Result := ActiveLanguage;
  106.   if Result > 0 then
  107.   begin
  108.     if ivctForm in ContextType then
  109.       Inc(Result);
  110.     if ivctComponent in ContextType then
  111.       Inc(Result);
  112.   end;
  113. end;
  114.  
  115. end.
  116.  
  117.